Per-buffer window counters.
authorDmitry Antipov <dmantipov@yandex.ru>
Mon, 10 Dec 2012 17:34:47 +0000 (21:34 +0400)
committerDmitry Antipov <dmantipov@yandex.ru>
Mon, 10 Dec 2012 17:34:47 +0000 (21:34 +0400)
commitda9c5fc4b8e295226eba9e25aca012a8229ae852
treec911cbc9c470d2d9d98a9d52c53d21747cbe8796
parentc3de91076fad39669e8e1e6e937b62fd44468536
Per-buffer window counters.
* buffer.h (struct buffer): New member window_count.
(buffer_window_count): New function.
* buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
Initialize window_count.
(Fkill_buffer): Verify window_count for the buffer being killed.
(modify_overlay): Do not force redisplay if buffer is not shown
in any window.
(init_buffer_once): Initialize window_count for buffer_defaults
and buffer_local_symbols.
* window.h (buffer_shared): Remove declaration.
(wset_buffer): Convert from inline ...
* window.c (wset_buffer): ... to an ordinary function.
(adjust_window_count): New function.
(make_parent_window): Use it.
* xdisp.c (buffer_shared): Remove.
(redisplay_internal, redisplay_window): Adjust users.
(buffer_shared_and_changed): Use per-buffer window counter.
src/ChangeLog
src/buffer.c
src/buffer.h
src/window.c
src/window.h
src/xdisp.c